#使用函数装饰器,给类进行装饰(cls表示类,可换)
'''
def kuozhan(cls):
    def func2():
        print('我是在装饰器中追加的类方法')

    cls.name='我是在装饰器中追加的类属性'
    cls.func2=func2
    return cls

@kuozhan
class Demo():
    def func():
        print('我是Demo类中定义的func方法')

# Demo()
# Demo.func()
Demo.func2()
'''

#使用类装饰器给类进行装饰
class Kuozhan():
    def __call__(self,cls):
        self.cls=cls
        return self.newfunc
    def newfunc(self):
        self.cls.name='我是类装饰器中追加的属性'
        self.cls.func2=self.func2
        return self.cls()

    def func2(self):
        print('类装饰器中追加的方法')

@Kuozhan()
class Demo():
    def func(self):
        print('Demo类中定义的func方法')

# Demo()
zs=Demo()
zs.func()
print(zs.name)
zs.func2()